package com.shop.trade.atom.atomsvc;

import com.shop.common.entity.trade.OrderDetail;
import com.shop.common.model.InputBean;
import com.shop.common.model.ServiceBean;
import com.shop.common.model.param.trade.OrderDetailInput;
import com.shop.common.model.result.trade.OrderDetailOutput;

import java.util.List;

/**
 * @Description:
 *
 * @author zhoulk
 * @date: 2019年04月05日  18:57
 */

public interface IOrderDetailAtomSvc {

    /**
     * @Author zhoulk
     * @Description //TODO 插入订单明细
     * @Date 17:32 2019/3/11
     *
     * @Param [orderDetailInput]
     * @return com.shop.common.model.ResultModel<java.lang.Integer>
     * @errorCode //TODO
     **/
    ServiceBean<Integer> insertOrderDetail(OrderDetail orderDetail);

    ServiceBean<Integer> insertOrderDetails(List<OrderDetail> orderDetails);

    /**
     * @Author zhoulk
     * @Description //TODO 删除订单明细
     * @Date 17:33 2019/3/11
     *
     * @Param [orderDetailInput]
     * @return com.shop.common.model.ResultModel<java.lang.String>
     * @errorCode //TODO
     **/
    ServiceBean<String> deleteOrderDetailById(Integer id);

    /**
     * @Author zhoulk
     * @Description //TODO 查询订单明细
     * @Date 17:33 2019/3/11
     *
     * @Param [orderDetailInput]
     * @return com.shop.common.model.ResultModel<com.shop.common.entity.trade.OrderDetail>
     * @errorCode //TODO
     **/
    ServiceBean<List<OrderDetailOutput>> selectOrderDetailByOrderId(Integer orderId);

    /**
     * @Author zhoulk
     * @Description //TODO 查询订单明细列表
     * @Date 17:33 2019/3/11
     *
     * @Param [orderDetailInput]
     * @return com.shop.common.model.ResultModel<java.util.List < com.shop.common.entity.trade.OrderDetail>>
     * @errorCode //TODO
     **/
    ServiceBean<List<OrderDetailOutput>> selectOrderDetailList(OrderDetailInput orderDetailInput);

    /**
     * @Author zhoulk
     * @Description //TODO 分页查询订单明细列表
     * @Date 17:33 2019/3/11
     *
     * @Param [orderDetailInput]
     * @return com.shop.common.model.ResultModel<java.util.List < com.shop.common.entity.trade.OrderDetail>>
     * @errorCode //TODO
     **/
    ServiceBean<List<OrderDetailOutput>> selectOrderDetailList4P(InputBean<OrderDetailInput> orderDetailInput);

    /**
     * @Author zhoulk
     * @Description //TODO 更新订单明细信息
     * @Date 17:40 2019/3/11
     *
     * @Param [orderDetailInput]
     * @return com.shop.common.model.ResultModel<java.lang.String>
     * @errorCode //TODO
     **/
    ServiceBean<String> updateOrderDetails(OrderDetailInput orderDetailInput);

    int qryOrderDetailCount(OrderDetailInput input);
}
